package com.ctshk.rpc.order.ship.dto.cport;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @Description
 * @Author wansi <gaylen15527491065@yeah.net>
 * @Date 2021/5/25
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel("船票订单详情信息")
public class AppShipOrderInfoDTO implements Serializable {

    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    @ApiModelProperty(value = "订单总额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "应收金额")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "已退款金额")
    private BigDecimal refundedAmount;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "销售方式(1：单品销售 2：打包销售)")
    private Integer salesMethods;

    @ApiModelProperty(value = "付款状态")
    private Integer paymentStatus;

    @ApiModelProperty(value = "预订状态")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "订单状态")
    private Integer orderStatus;

    @ApiModelProperty(value = "业务类型")
    private String businessType;

    @ApiModelProperty(value = "产品类型(1手工单，2外挂单)")
    private Integer productType;

    @ApiModelProperty(value = "订单来源")
    private Integer source;

    @ApiModelProperty(value = "销售人员id")
    private Long salesmanId;

    @ApiModelProperty(value = "销售人员名称")
    private String salesmanName;

    @ApiModelProperty("客戶類型")
    private String clientType;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty("订单备注")
    private String remark;

    private BigDecimal collectionAmount;


    //-----------去程--------
    @ApiModelProperty(value = "订单行程类型 1.单程 2往返.单程只展示去程即可")
    private Integer tripType;

    @ApiModelProperty("船公司名称")
    private String companyName1;

    @ApiModelProperty("航线名称")
    private String routeName1;

    @ApiModelProperty("出发城市")
    private String depCityName1;

    @ApiModelProperty("到达城市")
    private String arrCityName1;

    @ApiModelProperty(value = "航次码")
    private String voyage1;

    @ApiModelProperty(value = "出发地")
    private String depPlaceName1;

    @ApiModelProperty(value = "到达地")
    private String arrPlaceName1;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClassName1;

    @ApiModelProperty("出发日期")
    private LocalDate startDate1;

    @ApiModelProperty("船种")
    private String shipTypeName1;

    @ApiModelProperty("开船时间")
    private String startTime1;

    @ApiModelProperty("取票类型(1：电子票 2：纸质票)")
    private Integer ticketCollectionType1;

    @ApiModelProperty("取票类型对应方式(电邮/短信)")
    private String ticketCollection1;

    @ApiModelProperty("使用方式(1 兑换使用，2 直接使用)")
    private Integer exchangeMethod1;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;
    //---------返程----------


    @ApiModelProperty("返程:船公司名称")
    private String companyName2;

    @ApiModelProperty("返程:航线名称")
    private String routeName2;

    @ApiModelProperty("返程:出发城市")
    private String depCityName2;

    @ApiModelProperty("返程:到达城市")
    private String arrCityName2;

    @ApiModelProperty(value = "返程:航次码")
    private String voyage2;

    @ApiModelProperty(value = "返程:出发地")
    private String depPlaceName2;

    @ApiModelProperty(value = "返程:到达地")
    private String arrPlaceName2;

    @ApiModelProperty(value = "返程:船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClassName2;

    @ApiModelProperty("返程:出发日期")
    private LocalDate startDate2;

    @ApiModelProperty("返程:船种")
    private String shipTypeName2;

    @ApiModelProperty("返程:开船时间")
    private String startTime2;

    @ApiModelProperty("取票类型(1：电子票 2：纸质票)")
    private Integer ticketCollectionType2;

    @ApiModelProperty("取票类型对应方式(电邮/短信)")
    private String ticketCollection2;

    @ApiModelProperty("使用方式(1 兑换使用，2 直接使用)")
    private Integer exchangeMethod2;

    @ApiModelProperty("订单取消原因")
    private String cancelReason;

    @ApiModelProperty("确认失败原因")
    private String failReason;

    @ApiModelProperty("单程座位号")
    private String seatNos1;

    @ApiModelProperty("第二程座位号")
    private String seatNos2;

    @ApiModelProperty("hasInsurance 0 没有买保险, 1购买保险")
    private Integer hasInsurance;

}
